/**
 *
 * @param {Number | String} value 设备的状态值
 * @returns {String} 设备状态的文字描述
 */
const statusTextConvert = (value: number | string): string => {
  // 0 = 待机 1=运行中 2=保温中 3=预约中 4=设备离线
  const data: { [key: string]: string } = {
    '0': '待机中',
    '1': '运行中',
    '2': '保温中',
    '3': '预约中',
    '4': '设备离线'
  };
  return data[value];
};

/**
 * @description 设备运行状态
 * @param {Number | String} value 设备的状态值
 * @returns {String} 设备状态的文字描述
 */
const runningTextConvert = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '运行',
    2: '保温',
    3: '预约'
  };
  return data[value];
};

// 故障标题
const faultTextConvert = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '底部传感器开路',
    2: '底部传感器短路',
    3: '底部传感器超温',
    4: '顶部传感器开路',
    5: '顶部传感器短路'
  };
  return data[value];
};
// 故障详情
const faultTextdescription = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '送指定维修点维修',
    2: '送指定维修点维修',
    3: '出现“E3”后要拔出电源插头，待冷却后再上电，如不能正常工作，送维修点维修',
    4: '送指定维修点维修',
    5: '送指定维修点维修'
  };
  return data[value];
};

/**
 *
 * @param {Number} status 运行状态 0-待机 1-运行中 2-保温中 3-预约中
 * @param {Number } _preTime 预约
 * @returns {String} 设备状态的文字描述
 */
const btnFitersText = (
  status: number,
  preTime: number,
  mode: number
): string => {
  if (status === 1 || status === 2 || status === 3) {
    return '取消';
  } else {
    if (preTime) {
      return '开始预约';
    } else if (mode === 9) {
      return '开始保温';
    } else {
      return '开始烹饪';
    }
  }
};

// 待机-开始烹饪；运行中-取消；保温中-取消；预约中-取消；

/**
 * @description 不能模式下对应的默认工作时间
 * @param {Number} value 模式
 * @returns {Number} 工作时间
 */
const modeToWorktime = (value: number): number => {
  // 1=精煮 45min; 2=煲汤 90min; 3=热饭 15min; 4=炖焖  5=酸奶 6=甜品 7=煮粥 8=快煮 9=保温
  const data: { [key: number]: number } = {
    1: 45,
    2: 90,
    3: 15,
    4: 60,
    5: 480,
    6: 60,
    7: 80,
    8: 35,
    9: 720
  };
  return data[value];
};

export {
  modeToWorktime,
  btnFitersText,
  statusTextConvert,
  runningTextConvert,
  faultTextConvert,
  faultTextdescription
};
